<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php
include('conecta.php');
function atualizaTransacaoStatus($idtransacao,$status,$codigoTransacao){
	$sqlTrans = "UPDATE transacao SET status = '".$status."', codpagseguro = '".$codigoTransacao."' WHERE idtransacao= '".$idtransacao."'";
	mysql_query($sqlTrans);
}

function atualizaTransacaoDataPagamento($idtransacao,$data){
	$sqlTrans = "UPDATE transacao SET date_pagamento = '".$data."' WHERE idtransacao= '".$idtransacao."'";
	mysql_query($sqlTrans);	
}
//require('../funcoes.php');
require_once "pagseguro/PagSeguroLibrary.php";
//$conexao = conecta();
/* Obtendo credenciais definidas no arquivo de configuração */  
$credentials = PagSeguroConfig::getAccountCredentials();

/* Tipo de notificação recebida */  
$type = $_POST['notificationType'];  
  
/* Código da notificação recebida */  
$code = $_POST['notificationCode']; 

/* Verificando tipo de notificação recebida */
//if ($type == 'transaction') {  // esse if está verificando se o $type é um objeto do tipo transaction
    /* Obtendo o objeto Transaction a partir do código de notificação */
    $transaction = PagSeguroNotificationService::checkTransaction( $credentials, $code );// código de notificação
//}

$idtransacao = $transaction->getReference();  //codigo que usei la no request  no momento da compra
//Com o objeto Transaction você pode obter o status da transação utilizando o método getStatus que irá retornar um objeto do tipo TransactionStatus:
/* objeto TransactionStatus */
$status = $transaction->getStatus()->getValue();
$codeTransacao = $transaction->getCode();
//echo $status->getValue();
switch($status){
	case 1:{
		$statustraduzido = 1; // "<img src=\"../img/ps_aguardando.gif\" border=\"0\" /> aguardando pagamento";
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);
		break;
		}
	case 2:{
		$statustraduzido = 2; //"<img src=\"../img/ps_analise.gif\" border=\"0\" /> pagamento em análise";
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);
		break;
		}
	case 3:{
		$statustraduzido = 3; //"<img src=\"../img/ps_confirmado.gif\" border=\"0\" /> PAGAMENTO CONFIRMADO";
		//$mail_cliente = $transaction->getSender()->getEmail();
		//$nome_cliente = $transaction->getSender()->getName();
		
		$sqlTrans = "UPDATE transacao SET date_pagamento = '".date('Y-m-d')."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		
		//atualizaTransacaoDataPagamento($idtransacao, date('Y-m-d'));
		//registraLog($codeTransacao,$idtransacao,$statustraduzido,$conexao);
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);
		break;}
	case 4:{
		$statustraduzido = 4; //"<img src=\"../img/ps_disponivel.gif\" border=\"0\" /> VALOR ja disponivel na conta";	
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);	
		break;}
	case 5:	{
		$statustraduzido = 5; //"<img src=\"../img/ps_disputa.gif\" border=\"0\" /> o comprador abriu uma disputa";		
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);
		break;}
	case 6:	{
		$statustraduzido = 6; //"<img src=\"../img/ps_devolvido.gif\" border=\"0\" /> valor devolvido para o comprador";	
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);	
		//$sql = "UPDATE s_transacao SET date_pagamento='0000-00-00' WHERE idtransacao=".$idtransacao;
		//$result2 = consultaSQL($conexao,$sql);
		break;		}
	case 7:	{
		$statustraduzido = 7; //"<img src=\"../img/ps_cancelada.gif\" border=\"0\" /> transação cancelada";	
		$sqlTrans = "UPDATE transacao SET status = '".$statustraduzido."', codpagseguro = '".$codeTransacao."' WHERE idtransacao= '".$idtransacao."'";
		mysql_query($sqlTrans);	
		//atualizaTransacaoStatus($idtransacao,$statustraduzido,$codeTransacao);
		break;	
	}
}
//Faço gravar essa porra toda no BD. Toda vez q mudar o status de alguma transação essa página vai ser invocada e aqui em baixo eu coloco os UPDATE das tabelas da transação envolvida.


//1 = aguardando pagamento   ... o comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento.

//2 = em análise ... o comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação.

//3 = PAGO! ... a transação foi paga pelo comprador e o PagSeguro já recebeu uma confirmação da instituição financeira responsável pelo processamento.

//4 = Disponível ... a transação foi paga e chegou ao final de seu prazo de liberação sem ter sido retornada e sem que haja nenhuma disputa aberta.

//5 = Em disputa ... o comprador, dentro do prazo de liberação da transação, abriu uma disputa.

//6 = Devolvida ... o valor da transação foi devolvido para o comprador.

//7 = Cancelada: a transação foi cancelada sem ter sido finalizada.

//$ultimaAtualizacao = $transaction->getLastEventDate();
//$items = $transaction->getItems(); //retorna vetor com objetos do tipo item
//foreach($items as $key => $item) {  
  //  echo $item->getId(); // imprime o identificador do item, p.e. 0001  
  //  echo $item->getDescription(); // imprime a descrição do item, p.e. Notebook Prata  
  //  echo $item->getQuantity(); // imprime a quantidade, p.e. 1  
  //  echo $item->getAmount(); // imprime o valor unitário, p.e. 2430.00  
   // echo $item->getWeight(); // imprime o peso em gramas, p.e. 1000  
   // echo $item->getShippingCost(); // imprime os custos de frete, p.e. 17.35  
//}  
 ?>

</body>
</html>